index.html.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515
  1. <template>
  2. <div>
  3. <HomePageHead></HomePageHead>
  4. <HomePageNavigation></HomePageNavigation>
  5. <HomeSecondaryHeading :titleData="pageData" :pinyinid="routeId"></HomeSecondaryHeading>
  6. <!-- 频道页 -->
  7. <main class="index_main" id="all_vue">
  8. <section class="channel_1 clearfix">
  9. <div class="channel_box_1 clearfix">
  10. <div class="channel_name_ul">
  11. <div class="channel_name_ul_li" v-for="(per_obj, per_index) in 10" :key="per_obj">
  12. <a class="channel_name_ul_li_tag" href="" title="">【三农资讯】</a>
  13. <a class="channel_name_ul_li_dot1 dot1" href="" title="">民工动态民工动态民工动态民工动态民工动态民工动态民工动态</a>
  14. </div>
  15. </div>
  16. </div>
  17. <div class="channel_box_2 clearfix">
  18. <div class="channel_1_box clearfix">
  19. <HomeBigSwiper></HomeBigSwiper>
  20. </div>
  21. </div>
  22. </section>
  23. <div class="channel_banner_1"><a class="channel_banner_1_a" href="" title=""><img
  24. class="channel_banner_1_img" src="@/public/img/3.png" title="" alt=""></a></div>
  25. <section class="channel_2 clearfix">
  26. <div class="channel_box_3 clearfix">
  27. <!--open 企业风采-->
  28. <div class="channel_head_btn_box">
  29. <div class="channel_head_btn channel_head_btn_only">
  30. <a class="channel_head_a" href="" title="">企业风采</a>
  31. </div>
  32. <a class="channel_head_btn_right_a" href="" title="">栏目简介</a>
  33. </div>
  34. <div class="channel_big_ul clearfix">
  35. <div class="channel_big_li clearfix" v-for="(per_obj, per_index) in 2" :key="per_obj">
  36. <div class="channel_big_li_img_box">
  37. <img class="channel_big_li_img" src="@/public/img/28.png" title="" alt="">
  38. </div>
  39. <div class="channel_big_li_in">
  40. <div class="channel_ul_1">
  41. <a class="channel_ul_1_a dot1" href="" title="" v-for="(per_obj, per_index) in 4"
  42. :key="per_obj">农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权</a>
  43. </div>
  44. </div>
  45. </div>
  46. </div>
  47. <!--end 企业风采 -->
  48. <!--open 国际贸易-->
  49. <div class="channel_head_btn_box channel_head_top">
  50. <div class="channel_head_btn channel_head_btn_only">
  51. <a class="channel_head_a" href="" title="">
  52. 国际贸易
  53. </a>
  54. </div>
  55. <a class="channel_head_btn_right_a" href="" title="">栏目简介</a>
  56. </div>
  57. <div class=" clearfix">
  58. <div class="channel_box_5 clearfix">
  59. <div class="channel_img_ul_2">
  60. <div class="channel_img_ul_2_li">
  61. <a class="channel_img_ul_2_li_a" href="" title="">
  62. <img class="channel_img_ul_2_li_img" src="@/public/img/5.png" title="" alt="">
  63. <div class="channel_img_ul_2_li_dot1 dot1">
  64. 农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权
  65. </div>
  66. </a>
  67. </div>
  68. </div>
  69. </div>
  70. <div class="channel_box_6 clearfix">
  71. <div class="channel_ul_2 clearfix">
  72. <a class="channel_ul_2_a dot1" href="" title="" v-for="(per_obj, per_index) in 6"
  73. :key="per_obj">
  74. 农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权 </a>
  75. </div>
  76. </div>
  77. </div>
  78. <!--end 国际贸易 -->
  79. </div>
  80. <div class="channel_box_4 clearfix">
  81. <!--open 热点话题 -->
  82. <div class="channel_head_btn_box">
  83. <div class="channel_head_btn channel_head_btn_only">
  84. <a class="channel_head_a" href="" title="">
  85. 热点话题
  86. </a>
  87. </div>
  88. <a class="channel_head_btn_right_a" href="" title="">栏目简介</a>
  89. </div>
  90. <div class="channel_img_ul_3">
  91. <div class="channel_img_ul_3_li clearfix_2" v-for="(per_obj, per_index) in 6" :key="per_obj">
  92. <a class="channel_img_ul_3_li_a" href="" title="">
  93. <div class="channel_img_ul_3_li_img_box">
  94. <img class="channel_img_ul_3_li_img" src="@/public/img/29.png" title="" alt="">
  95. </div>
  96. <div class="channel_img_ul_3_li_dot3 dot3">
  97. 国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易国际贸易
  98. </div>
  99. <div class="channel_img_ul_3_li_num">{{ per_index + 1 }}</div>
  100. </a>
  101. </div>
  102. </div>
  103. </div>
  104. <!--end 热点话题 -->
  105. </section>
  106. <div class="channel_banner_2"><a class="channel_banner_2_a" href="" title=""><img
  107. class="channel_banner_2_img" src="@/public/img/3.png" title="" alt=""></a></div>
  108. <section class="channel_3 clearfix">
  109. <div class="channel_box_3 clearfix">
  110. <!--open 新人新事 -->
  111. <div class="channel_head_btn_box">
  112. <div class="channel_head_btn channel_head_btn_only">
  113. <a class="channel_head_a" href="" title="">
  114. 新人新事
  115. </a>
  116. </div>
  117. <a class="channel_head_btn_right_a" href="" title="">栏目简介</a>
  118. </div>
  119. <div class="channel_img_ul_4 clearfix">
  120. <div class="channel_img_ul_4_li clearfix" v-for="(per_obj, per_index) in 2" :key="per_obj">
  121. <a class="channel_img_ul_4_li_a clearfix" href="" title="">
  122. <div class="channel_img_ul_4_li_img_box">
  123. <img class="channel_img_ul_4_li_img" src="@/public/img/30.png" title="" alt="">
  124. </div>
  125. <div class="channel_img_ul_4_li_dot2 dot2">
  126. 招商招标招商招标招商招标招商招标招商招标招商招标招商招标招商招标招商招标招商招标招商招标招商招标招商招标招商招标招商招标 </div>
  127. </a>
  128. </div>
  129. </div>
  130. <div class="channel_ul_3 clearfix">
  131. <div class="channel_ul_3_li clearfix" v-for="(per_obj, per_index) in 3" :key="per_obj">
  132. <a class="channel_ul_3_li_a" href="" title="">
  133. <div class="channel_ul_3_li_tag">新人新事</div>
  134. <div class="channel_ul_3_li_dot1 dot1">
  135. 新人新事新人新事新人新事新人新事新人新事新人新事新人新事新人新事新人新事新人新事新人新事新人新事新人新事新人新事</div>
  136. </a>
  137. </div>
  138. </div>
  139. <!--end 新人新事 -->
  140. </div>
  141. <div class="channel_box_4 clearfix">
  142. <!--open 专题报道-->
  143. <div class="channel_head_btn_box">
  144. <div class="channel_head_btn channel_head_btn_only">
  145. <a class="channel_head_a" href="" title="">
  146. 专题报道
  147. </a>
  148. </div>
  149. <a class="channel_head_btn_right_a" href="" title="">栏目简介</a>
  150. </div>
  151. <div class="channel_img_ul_5">
  152. <div class="channel_img_ul_5_li">
  153. <a class="channel_img_ul_5_li_a" href="" title="">
  154. <img class="channel_img_ul_5_li_img" src="@/public/img/31.png" title="" alt="">
  155. <div class="channel_img_ul_5_li_dot2 dot2">
  156. 农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权</div>
  157. </a>
  158. </div>
  159. </div>
  160. <!--end 专题报道-->
  161. </div>
  162. </section>
  163. <section class="channel_4 clearfix">
  164. <div class="channel_box_3 clearfix">
  165. <div class="channel_head_btn_box">
  166. <div class="channel_head_btn" :class="{ channel_head_btn_only: channel_choice_1_num == 1 }"
  167. @mouseover="channel_choice_1_num = 1">
  168. <a class="channel_head_a" href="" title="">农产动态</a>
  169. </div>
  170. <div class="channel_head_btn" :class="{ channel_head_btn_only: channel_choice_1_num == 2 }"
  171. @mouseover="channel_choice_1_num = 2">
  172. <a class="channel_head_a" href="" title=""> 品牌快讯 </a>
  173. </div>
  174. <a class="channel_head_btn_right_a" href="" title="">栏目简介</a>
  175. </div>
  176. <div class=" clearfix">
  177. <!--open 农产动态-->
  178. <div class=" clearfix" v-show="channel_choice_1_num == 1">
  179. <div class="channel_box_5 clearfix">
  180. <div class="channel_img_ul_6">
  181. <div class="channel_img_ul_6_li"><a class="channel_img_ul_6_li_a" href=""
  182. title=""><img class="channel_img_ul_6_li_img" src="@/public/img/31.png"
  183. title="" alt="">
  184. <div class="channel_img_ul_6_li_dot2 dot2">
  185. 农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权
  186. </div>
  187. </a></div>
  188. </div>
  189. <div class="channel_img_ul_even_1 clearfix">
  190. <div class="channel_img_ul_even_1_li" v-for="(per_obj, per_index) in 2"
  191. :key="per_obj">
  192. <a class="channel_img_ul_even_1_li_a" href="" title="">
  193. <img class="channel_img_ul_even_1_li_img" src="@/public/img/32.png"
  194. title="" alt="">
  195. <div class="channel_img_ul_even_1_li_dot2 dot2">
  196. 农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权
  197. </div>
  198. </a>
  199. </div>
  200. </div>
  201. </div>
  202. <div class="channel_box_6 clearfix">
  203. <div class="channel_ul_4 clearfix">
  204. <a class="channel_ul_4_a dot1" href="" title="" v-for="(per_obj, per_index) in 10"
  205. :key="per_obj">
  206. 1农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权 </a>
  207. </div>
  208. </div>
  209. </div>
  210. <!--end 农产动态-->
  211. <!--open 品牌快讯-->
  212. <div class=" clearfix" v-show="channel_choice_1_num == 2"> 品牌快讯</div>
  213. <!--end 品牌快讯-->
  214. </div>
  215. </div>
  216. <div class="channel_box_4 clearfix">
  217. <div class="channel_head_btn_box">
  218. <div class="channel_head_btn" :class="{ channel_head_btn_only: channel_choice_2_num == 1 }"
  219. @mouseover="channel_choice_2_num = 1">
  220. <a class="channel_head_a" href="" title=""> 市场预测 </a>
  221. </div>
  222. <div class="channel_head_btn" :class="{ channel_head_btn_only: channel_choice_2_num == 2 }"
  223. @mouseover="channel_choice_2_num = 2">
  224. <a class="channel_head_a" href="" title="">价格行情</a>
  225. </div>
  226. <a class="channel_head_btn_right_a" href="" title="">栏目简介</a>
  227. </div>
  228. <div class=" clearfix">
  229. <!--open 市场预测 -->
  230. <div class=" clearfix" v-show="channel_choice_2_num == 1">
  231. <div class="channel_img_ul_7 clearfix">
  232. <div class="channel_img_ul_7_li">
  233. <a class="channel_img_ul_7_li_a" href="" title="">
  234. <img class="channel_img_ul_7_li_img" src="@/public/img/33.png" title="" alt="">
  235. <div class="channel_img_ul_7_li_foot">
  236. <div class="channel_img_ul_7_li_tag">热 门</div>
  237. <div class="channel_img_ul_7_li_dot1 dot1">
  238. 热门热门热门热门热门热门热门热门热门热门热门热门热门</div>
  239. </div>
  240. </a>
  241. </div>
  242. </div>
  243. <div class="channel_ul_5 clearfix">
  244. <a class="channel_ul_5_a dot1" href="" title="" v-for="(per_obj, per_index) in 6"
  245. :key="per_obj">
  246. 农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权农民工维权
  247. </a>
  248. </div>
  249. </div>
  250. <!--end 市场预测 -->
  251. <!--open 价格行情 -->
  252. <div class=" clearfix" v-show="channel_choice_2_num == 2">
  253. 价格行情
  254. </div>
  255. <!--end 价格行情 -->
  256. </div>
  257. </div>
  258. </section>
  259. </main>
  260. <!-- 页脚部分 -->
  261. <HomeFoot1></HomeFoot1>
  262. </div>
  263. </template>
  264. <script setup>
  265. //0.加载页面依赖 start ---------------------------------------->
  266. import { ref, onMounted } from 'vue';
  267. import { ElMessage } from 'element-plus';
  268. //0.加载页面依赖 end ---------------------------------------->
  269. //1.获得路由id start ---------------------------------------->
  270. const targetSegment = getRoutePath(1);
  271. //1.1 获得当前的路由id
  272. let routeId;
  273. //通过导航路径反向查询导航id
  274. const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
  275. method: 'GET',
  276. query: {
  277. 'pinyin': targetSegment,
  278. },
  279. });
  280. if (getRouteId.code == 200) {
  281. routeId = getRouteId.data.category_id
  282. } else {
  283. console.log("获得路由id出错!", getRouteId.message)
  284. }
  285. //1.获得路由id end ---------------------------------------->
  286. //2.选项卡 start ---------------------------------------->
  287. let showTabs = ref(1)
  288. let qhtabs = function (number) {
  289. console.log(number)
  290. showTabs.value = number
  291. }
  292. //2.选项卡 end ---------------------------------------->
  293. //3.广告 start ---------------------------------------->
  294. let adImg1 = ref({})
  295. let adImg2 = ref({})
  296. let adImg3 = ref({})
  297. let adImg4 = ref({})
  298. onMounted(async () => {
  299. //从客户端获取行政职能部门 加快打开速度
  300. const { $webUrl, $CwebUrl } = useNuxtApp();
  301. //广告1
  302. let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0001`
  303. const responseAd1 = await fetch(url, {
  304. headers: {
  305. 'Content-Type': 'application/json',
  306. 'Userurl': $CwebUrl,
  307. 'Origin': $CwebUrl
  308. }
  309. });
  310. const resultAd1 = await responseAd1.json();
  311. adImg1.value = resultAd1.data[0];
  312. //广告2
  313. let url2 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0002`
  314. const responseAd2 = await fetch(url2, {
  315. headers: {
  316. 'Content-Type': 'application/json',
  317. 'Userurl': $CwebUrl,
  318. 'Origin': $CwebUrl
  319. }
  320. });
  321. const resultAd2 = await responseAd2.json();
  322. adImg2.value = resultAd2.data[0];
  323. //广告3
  324. let url3 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0003`
  325. const responseAd3 = await fetch(url3, {
  326. headers: {
  327. 'Content-Type': 'application/json',
  328. 'Userurl': $CwebUrl,
  329. 'Origin': $CwebUrl
  330. }
  331. });
  332. const resultAd3 = await responseAd3.json();
  333. adImg3.value = resultAd3.data[0];
  334. //广告4
  335. let url4 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0004`
  336. const responseAd4 = await fetch(url4, {
  337. headers: {
  338. 'Content-Type': 'application/json',
  339. 'Userurl': $CwebUrl,
  340. 'Origin': $CwebUrl
  341. }
  342. });
  343. const resultAd4 = await responseAd4.json();
  344. adImg4.value = resultAd4.data[0];
  345. })
  346. //3.广告 end ---------------------------------------->
  347. //4.页面数据 start ---------------------------------------->
  348. const pageData = ref([
  349. //示例:
  350. // {
  351. // id: 1,
  352. // title: "", //该导航的标题
  353. // data: [], //数据1
  354. // data1: [], //数据2
  355. // data2: [], //数据3
  356. // data3: [], //数据4
  357. // data4: [], //数据5
  358. // category_id1: "", //子导航id1
  359. // category_id2: "",
  360. // category_id3: "",
  361. // category_id4: "",
  362. // title1: "", //子导航标题1
  363. // title2: "",
  364. // title3: "",
  365. // title4: "",
  366. // cid: "" //该导航的id
  367. // },
  368. ])
  369. //4.1 获取所有导航
  370. try {
  371. const navigateData = await requestDataPromise('/web/getWebsiteModelCategory', {
  372. method: 'GET',
  373. query: {
  374. 'placeid': 1,
  375. 'pid': routeId,
  376. 'num': 8
  377. },
  378. });
  379. if (navigateData.code == 200) {
  380. // 遍历可用的导航池放到页面中
  381. for (let index in navigateData.data) {
  382. let data = {
  383. title: navigateData.data[index].name,
  384. cid: navigateData.data[index].category_id,
  385. children_count: navigateData.data[index].children_count,
  386. alias: navigateData.data[index].alias,
  387. aLIas_pinyin: targetSegment + "/" + navigateData.data[index].aLIas_pinyin,
  388. data: [],
  389. data1: [],
  390. data2: [],
  391. data3: [],
  392. data4: [],
  393. category_id1: "",
  394. category_id2: "",
  395. category_id3: "",
  396. category_id4: "",
  397. title1: "",
  398. title2: "",
  399. title3: "",
  400. title4: ""
  401. };
  402. if (navigateData.data[index].is_url == 1) {
  403. // 处理 URL 的逻辑
  404. } else {
  405. //每个页面最多8个模块
  406. pageData.value.push(data);
  407. }
  408. }
  409. //导航池加载完毕,开始申请模块数据
  410. let getJson = [
  411. { "parent": routeId + ",0,0", "child": pageData.value[0].cid + ",5,10" },//模块1 顶部没有标题的那个
  412. { "parent": routeId + ",0,0", "child": pageData.value[1].cid + ",1,6" },//模块2
  413. { "parent": routeId + ",0,0", "child": pageData.value[2].cid + ",1,6" },//模块3
  414. { "parent": routeId + ",0,0", "child": pageData.value[3].cid + ",1,6" },//模块4
  415. { "parent": routeId + ",0,0", "child": pageData.value[4].cid + ",3,10" },//模块5
  416. { "parent": routeId + ",0,0", "child": pageData.value[5].cid + ",2,6" },//模块6
  417. { "parent": routeId + ",0,0", "child": pageData.value[6].cid + ",0,6" },//模块7
  418. { "parent": routeId + ",0,0", "child": pageData.value[7].cid + ",1,0" },//模块8
  419. ]
  420. let jsonString = JSON.stringify(getJson);
  421. getPageAllData(jsonString);
  422. } else {
  423. console.log("错误:渲染8个模块环节出错,请检查是否存在没有数据的模块!")
  424. }
  425. } catch (error) {
  426. console.log("错误:导航池渲染执行接口出错!请检查频道页渲染的模块数据是否完整!")
  427. }
  428. async function getPageAllData(jsonString) {
  429. const mkdata = await requestDataPromise('/web/getWebsiteAllArticle', {
  430. method: 'GET',
  431. query: {
  432. 'id': jsonString
  433. },
  434. });
  435. if (mkdata.code == 200) {
  436. //模块1 顶部大图和列表
  437. pageData.value[0].data = mkdata.data[0].child.imgnum;
  438. pageData.value[0].data2 = mkdata.data[0].child.textnum;
  439. //模块2
  440. pageData.value[1].data = mkdata.data[1].child.imgnum;
  441. pageData.value[1].data2 = mkdata.data[1].child.textnum;
  442. //模块3
  443. pageData.value[2].data = mkdata.data[2].child.imgnum;
  444. pageData.value[2].data2 = mkdata.data[2].child.textnum;
  445. //模块4
  446. pageData.value[3].data = mkdata.data[3].child.imgnum;
  447. pageData.value[3].data2 = mkdata.data[3].child.textnum;
  448. //模块5
  449. for(let index in mkdata.data[4].child.imgnum){
  450. if(index<1){
  451. pageData.value[4].data.push(mkdata.data[4].child.imgnum[index]);
  452. }else{
  453. pageData.value[4].data2.push(mkdata.data[4].child.imgnum[index]);
  454. }
  455. }
  456. pageData.value[4].data3 = mkdata.data[4].child.textnum;
  457. //模块6
  458. pageData.value[5].data = mkdata.data[5].child.imgnum;
  459. pageData.value[5].data2 = mkdata.data[5].child.textnum;
  460. //模块7
  461. pageData.value[6].data = mkdata.data[6].child.textnum;
  462. //模块8
  463. pageData.value[7].data = mkdata.data[7].child.imgnum;
  464. } else {
  465. ElMessage.error(mkdata.message)
  466. }
  467. }
  468. //4.页面数据 end ---------------------------------------->
  469. //5.设置seo信息 start---------------------------------------->
  470. const setData = await requestDataPromise('/web/getWebsiteCategoryHead', {
  471. method: 'GET',
  472. query: {
  473. 'catid': routeId
  474. },
  475. });
  476. if (setData.code == 200) {
  477. let seoTitle = setData.data.seo_title;
  478. let seoDescription = setData.data.seo_description;
  479. let seoKeywords = setData.data.seo_keywords;
  480. let seoSuffix = setData.data.suffix;
  481. let seoName = setData.data.website_name;
  482. useSeoMeta({
  483. title: seoTitle + "_" + seoSuffix,
  484. meta: [
  485. { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
  486. { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
  487. ]
  488. });
  489. } else {
  490. console.log("设置频道页SEO出错!",setData.message)
  491. }
  492. //5.设置seo信息 end---------------------------------------->
  493. </script>
  494. <style lang="less" scoped>
  495. @import '@/assets/css/class.less';
  496. </style>